﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ProjControleBLL;
using ProjControleModelos;

namespace ProjControle
{
    public partial class frm_cadastro_fornecedor : Form
    {
        String tipo_controle = "";
        public frm_cadastro_fornecedor()
        {
            InitializeComponent();
        }
        #region Inserir
        public void inserir()
        {
            tipo_controle = "I";
            tbCNPJ.Enabled = true;
            tbEndereco.Enabled = true;
            tbIE.Enabled = true;
            tbNome.Enabled = true;
            tbTelefone.Enabled = true;
            tbNomeContato.Enabled = true;
            dtCadastro.Enabled = true;
            tbEmail.Enabled = true;
            tbCidade.Enabled = true;
            tbFax.Enabled = true;
            cbEstado.Enabled = true;

            bIncluir.Enabled = false;
            bAlterar.Enabled = false;
            bExcluir.Enabled = false;
            bSalvar.Enabled = true;
            bVoltar.Enabled = false;
            tbCNPJ.Focus();
            gbLocalizar.Enabled = false;
        }
        public void frm_load()
        {
            tbCNPJ.Enabled = false;
            tbEndereco.Enabled = false;
            tbIE.Enabled = false;
            tbNome.Enabled = false;
            tbTelefone.Enabled = false;
            tbNomeContato.Enabled = false;
            dtCadastro.Enabled = false;
            gbLocalizar.Enabled = true;
            tbEmail.Enabled = false;
            tbCidade.Enabled = false;
            tbFax.Enabled = false;
            cbEstado.Enabled = false;

            bIncluir.Enabled = true;
            bAlterar.Enabled = false;
            bExcluir.Enabled = false;
            bSalvar.Enabled = false;
            bVoltar.Enabled = true;
            associaGrid();
        }
        public void alterar()
        {
            tipo_controle = "A";
            tbCNPJ.Enabled = true;
            tbEndereco.Enabled = true;
            tbIE.Enabled = true;
            tbNome.Enabled = true;
            tbTelefone.Enabled = true;
            tbNomeContato.Enabled = true;
            dtCadastro.Enabled = true;
            tbEmail.Enabled = true;
            tbCidade.Enabled = true;
            tbFax.Enabled = true;
            cbEstado.Enabled = true;

            bIncluir.Enabled = false;
            bAlterar.Enabled = false;
            bExcluir.Enabled = false;
            bSalvar.Enabled = true;
            bVoltar.Enabled = false;
            gbLocalizar.Enabled = false;
        }
        public void limpar()
        {
            tbCNPJ.Text = "";
            tbEndereco.Text = "";
            tbIE.Text = "";
            tbNome.Text = "";
            tbTelefone.Text = "";
            tbCodigo.Text = "";
            tbNomeContato.Text = "";
            dtCadastro.Value = DateTime.Now;
            tbEmail.Text = "";
            tbCidade.Text = "";
            tbFax.Text = "";
            cbEstado.SelectedIndex = -1;

            bIncluir.Enabled = true;
            bAlterar.Enabled = false;
            bExcluir.Enabled = false;
            bSalvar.Enabled = false;
            bVoltar.Enabled = true;

            tbCNPJ.Enabled = false;
            tbEndereco.Enabled = false;
            tbIE.Enabled = false;
            tbNome.Enabled = false;
            tbTelefone.Enabled = false;
            tbNomeContato.Enabled = false;
            dtCadastro.Enabled = false;
            gbLocalizar.Enabled = true;
            tbEmail.Enabled = false;
            tbCidade.Enabled = false;
            tbFax.Enabled = false;
            cbEstado.Enabled = false;
            dgFornecedores.DataSource = null;
            associaGrid();

        }
        public void associaGrid()
        {
            DataTable tab;
            try
            {
                tab = new DataTable();
                tab.Columns.Add("cod_fornecedor");
                tab.Columns.Add("descricao_fornecedor");
                dgFornecedores.DataSource = tab;
                dgFornecedores.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dgFornecedores.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                dgFornecedores.AllowUserToAddRows = false;
                dgFornecedores.AllowUserToResizeRows = false;
                dgFornecedores.AllowUserToResizeColumns = false;
                dgFornecedores.Columns["cod_fornecedor"].HeaderText = "Código";
                dgFornecedores.Columns["cod_fornecedor"].Width = 70;
                dgFornecedores.Columns["descricao_fornecedor"].HeaderText = "Nome";
                dgFornecedores.Columns["descricao_fornecedor"].Width = 250;
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }
        public Fornecedores carregaPropriedades()
        {
            Fornecedores objF = new Fornecedores();
            if (tbCodigo.Text == "")
                objF.codigo = 0;
            else
                objF.codigo = int.Parse(tbCodigo.Text);
            objF.descricao = tbNome.Text;
            objF.dt_cadastro = dtCadastro.Value;
            objF.endereco = tbEndereco.Text;
            objF.inscricao = tbIE.Text;
            objF.cnpj = tbCNPJ.Text;
            objF.nome_contato = tbNomeContato.Text;
            objF.telefone = tbTelefone.Text;
            objF.cidade = tbCidade.Text;
            objF.estado = cbEstado.SelectedItem.ToString();
            objF.email = tbEmail.Text;
            objF.fax = tbFax.Text;

            return objF;
        }
        public void carregaCampos(Fornecedores objF)
        {
            tbCNPJ.Text = objF.cnpj;
            tbCodigo.Text = objF.codigo.ToString();
            tbEndereco.Text = objF.endereco;
            tbIE.Text = objF.inscricao.ToString();
            tbNome.Text = objF.descricao;
            tbNomeContato.Text = objF.nome_contato;
            tbTelefone.Text = objF.telefone.ToString();
            cbEstado.SelectedItem = objF.estado;
            tbCidade.Text = objF.cidade;
            tbEmail.Text = objF.email;
            tbFax.Text = objF.fax.ToString();
            dtCadastro.Value = objF.dt_cadastro;
        }

        #endregion

        private void bIncluir_Click(object sender, EventArgs e)
        {
            inserir();
        }

        private void frm_cadastro_fornecedor_Load(object sender, EventArgs e)
        {
            frm_load();
        }

        private void bExcluir_Click(object sender, EventArgs e)
        {
            FornecedoresBLL objBLL = null;
            Fornecedores objF = null;
            try
            {
                if (MessageBox.Show("Deseja Excluir?", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    objBLL = new FornecedoresBLL();
                    objF = carregaPropriedades();
                    objBLL.excluir(objF);
                    MessageBox.Show("Excluido com Sucesso", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    limpar();
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
            objBLL = null;
            objF = null;
        }

        private void bCancelar_Click(object sender, EventArgs e)
        {
            limpar();
        }

        private void bVoltar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void bAlterar_Click(object sender, EventArgs e)
        {
            alterar();
        }

        private void tbLocalizar_KeyPress(object sender, KeyPressEventArgs e)
        {
            FornecedoresBLL objBLL;
            if (e.KeyChar == Convert.ToChar(Keys.Space))
            {
                try
                {
                    DataTable tab;
                    objBLL = new FornecedoresBLL();
                    tab = objBLL.localizar(tbLocalizar.Text.Trim());
                    if (tab.Rows.Count > 0)
                    {
                        dgFornecedores.DataSource = tab;
                        for (int i = 2; i < dgFornecedores.Columns.Count; i++)
                            dgFornecedores.Columns[i].Visible = false;
                    }
                    else
                        MessageBox.Show("Registro(s) não Encontrado(s)!", "Clientes", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                catch (Exception ex)
                {

                    MessageBox.Show(ex.Message);
                }
            }
        }

        private void bSalvar_Click(object sender, EventArgs e)
        {
            FornecedoresBLL objBLL = null;
            Fornecedores objF = null;
            Valida_CPF_CNPJ objValida = null;
            Boolean ret;
            try
            {
                objValida = new Valida_CPF_CNPJ();
                ret = objValida.ValidaCnpj(tbCNPJ.Text);
                if (ret == true)
                {
                    objF = carregaPropriedades();
                    objBLL = new FornecedoresBLL();
                    if (tipo_controle == "I")
                        objBLL.inserir(objF);
                    else
                        objBLL.alterar(objF);

                    MessageBox.Show("Salvo com Sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    limpar();
                }
                else
                    MessageBox.Show("CNPJ Invalido","Mensagem",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }
        }

        private void dgFornecedores_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int codigo = 0;
            FornecedoresBLL objBLL = null;
            Fornecedores objF = null;
            try
            {
                codigo = int.Parse(dgFornecedores.Rows[e.RowIndex].Cells[0].Value.ToString());
                if (codigo != 0)
                {
                    bAlterar.Enabled = true;
                    bExcluir.Enabled = true;
                    bIncluir.Enabled = false;
                    bCancelar.Enabled = true;
                    objBLL = new FornecedoresBLL();
                    objF = objBLL.localizar(codigo);
                    if (objF.codigo != 0)
                    {
                        carregaCampos(objF);
                    }
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }

        }

    }
}
